// 全局拦截
import axios from 'axios'
// import store from '../store/index'
import router from '../router/index'
// import ElementUI from 'element-ui'

axios.defaults.baseURL = '/api/' // axios请求页面里就可以省略api,必须写在service的外面
axios.defaults.headers['Content-Type'] = 'application/json' // 请求头封装

// 创建一个axios实例
const service = axios.create({
  // 请求超时时间
  timeout: 5000
})

// 请求的拦截器  interceptors: 拦截器 request：请求的拦截
service.interceptors.request.use(
  config => {
    console.log(config) // 获取请求头的参数
    // if (store.state.login.token) {
    //   config.headers.Authorization = store.state.login.token // 传请求头给后台
    // }
    return config
  },
  err => console.log(err)
)

service.interceptors.response.use(
  response => {
    const data = response.data
    return data
  },
  err => {
    console.log(err)
    // 判断token是否过期
    console.log(err.response.status)
    if (err && err.response) {
      switch (err.response.status) {
        case 400:
          alert('错误请求!')
          break
        case 403:
          alert('登陆失效，请重新登录!')
          router.replace({
            path: '/login' // 到登录页重新获取token
          })
          break
        case 404:
          alert('找不到资源!')
          break
        case 500:
          alert('服务器错误!')
          break
      }
    }
  }
)

export default service // 输出service
